#include<cairo.h>

int
main(int argc, char* argv[]){
  cairo_surface_t *sfc = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 1600, 1000);
  cairo_t * cr = cairo_create(sfc);

  double dashes[] = {10, 15, 20, 25, 30};

  cairo_set_dash(cr, dashes, 5, 100);

  cairo_move_to(cr, 100, 500);
  cairo_line_to(cr, 500, 500);
  // cairo_stroke(cr);

  cairo_set_dash(cr, dashes, 5, 0);
  cairo_move_to(cr, 0, 505);
  cairo_line_to(cr, 500, 505);
  // cairo_stroke(cr);

  cairo_set_dash(cr, dashes, 0, 1000);
  cairo_move_to(cr, 0, 510);
  cairo_line_to(cr, 500, 510);
  cairo_stroke(cr);
  // 虚线选项和线宽一样，都是stroke时生效
  // 如stroke前多次设置则以最后一次为准。

  cairo_surface_write_to_png(sfc, "h.png");

  return 0;
}//main